<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Voro++: voro::container_periodic_base Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Voro++
   
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript" src="dynsections.js"></script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>voro</b>      </li>
      <li class="navelem"><a class="el" href="classvoro_1_1container__periodic__base.html">container_periodic_base</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Data Fields</a> &#124;
<a href="#pro-methods">Protected Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">voro::container_periodic_base Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="voro::container_periodic_base" --><!-- doxytag: inherits="voro::unitcell,voro::voro_base" -->
<p>Class for representing a particle system in a 3D periodic non-orthogonal periodic domain.  
 <a href="classvoro_1_1container__periodic__base.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for voro::container_periodic_base:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
 <div class="center">
  <img src="classvoro_1_1container__periodic__base.png" usemap="#voro::container_periodic_base_map" alt=""/>
  <map id="voro::container_periodic_base_map" name="voro::container_periodic_base_map">
<area href="classvoro_1_1unitcell.html" title="Class for computation of the unit Voronoi cell associated with a 3D non-rectangular periodic domain..." alt="voro::unitcell" shape="rect" coords="0,0,184,24"/>
<area href="classvoro_1_1voro__base.html" title="Class containing data structures common across all particle container classes." alt="voro::voro_base" shape="rect" coords="194,0,378,24"/>
<area href="classvoro_1_1container__periodic.html" title="Extension of the container_periodic_base class for computing regular Voronoi tessellations." alt="voro::container_periodic" shape="rect" coords="0,112,184,136"/>
<area href="classvoro_1_1container__periodic__poly.html" title="Extension of the container_periodic_base class for computing radical Voronoi tessellations." alt="voro::container_periodic_poly" shape="rect" coords="194,112,378,136"/>
</map>
 </div></div>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a5319c976a873f9b10f80f9038f3460bd">container_periodic_base</a> (double bx_, double bxy_, double by_, double bxz_, double byz_, double bz_, int nx_, int ny_, int nz_, int init_mem_, int <a class="el" href="classvoro_1_1container__periodic__base.html#a5213538964cf869c9751a27bccaf323e">ps</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a4eacfa1389d290c753df07df3c88e0a7">~container_periodic_base</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#ac931a6c1cab4b2e910a0d07969b38785">print_all_particles</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a8462c3a3079586196e2bd9a764283173">region_count</a> ()</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class v_cell &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#ae540389dc8845562c5f8cd45cec71edd">initialize_voronoicell</a> (v_cell &amp;c, int ijk, int q, int ci, int cj, int ck, int &amp;i, int &amp;j, int &amp;k, double &amp;x, double &amp;y, double &amp;z, int &amp;disp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a812ed5572fcfece48b73517fcf913ec0">initialize_search</a> (int ci, int cj, int ck, int ijk, int &amp;i, int &amp;j, int &amp;k, int &amp;disp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a4f637efc5e56874aa9d68f44505e042c">frac_pos</a> (double x, double y, double z, double ci, double cj, double ck, double &amp;fx, double &amp;fy, double &amp;fz)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#aa0cd2a5bf51968b7af3334f4bbb8df8e">region_index</a> (int ci, int cj, int ck, int ei, int ej, int ek, double &amp;qx, double &amp;qy, double &amp;qz, int &amp;disp)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a9e622a40386d97fcb015ff4ed792ff44">create_all_images</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a133f1be4a780183fd6bd7c008c65482d">check_compartmentalized</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a407b759a2c2d6baec5183e18a726a4e6">ey</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a9920ab99f51190399ceda8fb8689364f">ez</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a012ffc20dd6379bcbd26ddc0c5cc8591">wy</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#afe16d21568925f78421122cdfb7b0cc0">wz</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#aa143ce1ecd9093f7c1889a0481b4cbb5">oy</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#ab1f18c51495f684dfc4d3372f9b311da">oz</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#ae1dfc876e56ec254053c7672b4454313">oxyz</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a5abecf243780e08dd6cce6f5dd270c76">id</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a301925d00d1d79f3df7b965d02e25608">p</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a8ae965b9dbb02a92e8dcb0d082d625a2">co</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a4ff4effc81e7b8908cda31f0c8c5ad70">mem</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a90658551a7621bedfea141f052443fe1">img</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#adeaa9eab58ba59f2fa3d7176ce617ff1">init_mem</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a5213538964cf869c9751a27bccaf323e">ps</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#add72546a646600a12ccda1be8041213a">add_particle_memory</a> (int i)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#afcffffda4a00a48acb4243a74ed59c05">put_locate_block</a> (int &amp;ijk, double &amp;x, double &amp;y, double &amp;z)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a8d0c8a32a6e31cdd8eecb335f5f68d22">put_locate_block</a> (int &amp;ijk, double &amp;x, double &amp;y, double &amp;z, int &amp;ai, int &amp;aj, int &amp;ak)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a11b7428673e4791fe651036ecda0cd12">create_periodic_image</a> (int di, int dj, int dk)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#aa16ea029bbf80a1fdec3e6bba675e704">create_side_image</a> (int di, int dj, int dk)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a8d3545b219d91aee864b224829b6a644">create_vertical_image</a> (int di, int dj, int dk)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#a72efe37cb7876149cac5f5ead579b353">put_image</a> (int reg, int fijk, int l, double dx, double dy, double dz)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classvoro_1_1container__periodic__base.html#ac5b0b78cf8fe46f7e3c7124dbf4e0729">remap</a> (int &amp;ai, int &amp;aj, int &amp;ak, int &amp;ci, int &amp;cj, int &amp;ck, double &amp;x, double &amp;y, double &amp;z, int &amp;ijk)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This class represents a particle system in a three-dimensional non-orthogonal periodic domain. The domain is defined by three periodicity vectors (bx,0,0), (bxy,by,0), and (bxz,byz,bz) that represent a parallelepiped. Internally, the class stores particles in the box 0&lt;x&lt;bx, 0&lt;y&lt;by, 0&lt;z&lt;bz, and constructs periodic images of particles that displaced by the three periodicity vectors when they are necessary for the computation. The internal memory structure for this class is significantly different from the <a class="el" href="classvoro_1_1container__base.html" title="Class for representing a particle system in a three-dimensional rectangular box.">container_base</a> class in order to handle the dynamic construction of these periodic images.</p>
<p>The class is derived from the unitcell class, which encapsulates information about the domain geometry, and the <a class="el" href="classvoro_1_1voro__base.html" title="Class containing data structures common across all particle container classes.">voro_base</a> class, which encapsulates information about the underlying computational grid. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00046">46</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5319c976a873f9b10f80f9038f3460bd"></a><!-- doxytag: member="voro::container_periodic_base::container_periodic_base" ref="a5319c976a873f9b10f80f9038f3460bd" args="(double bx_, double bxy_, double by_, double bxz_, double byz_, double bz_, int nx_, int ny_, int nz_, int init_mem_, int ps)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">voro::container_periodic_base::container_periodic_base </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bx_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bxy_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>by_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bxz_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>byz_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bz_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nx_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ny_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nz_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>init_mem_</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ps_</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The class constructor sets up the geometry of container, initializing the minimum and maximum coordinates in each direction, and setting whether each direction is periodic or not. It divides the container into a rectangular grid of blocks, and allocates memory for each of these for storing particle positions and IDs. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(bx_)</td><td>The x coordinate of the first unit vector. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(bxy_,by_)</td><td>The x and y coordinates of the second unit vector. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(bxz_,byz_,bz_)</td><td>The x, y, and z coordinates of the third unit vector. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(nx_,ny_,nz_)</td><td>the number of grid blocks in each of the three coordinate directions. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">init_mem_</td><td>the initial memory allocation for each block. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ps_</td><td>the number of floating point entries to store for each particle. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00029">29</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a4eacfa1389d290c753df07df3c88e0a7"></a><!-- doxytag: member="voro::container_periodic_base::~container_periodic_base" ref="a4eacfa1389d290c753df07df3c88e0a7" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">voro::container_periodic_base::~container_periodic_base </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The container destructor frees the dynamically allocated memory. </p>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00052">52</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="add72546a646600a12ccda1be8041213a"></a><!-- doxytag: member="voro::container_periodic_base::add_particle_memory" ref="add72546a646600a12ccda1be8041213a" args="(int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::add_particle_memory </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Increase memory for a particular region. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">i</td><td>the index of the region to reallocate. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00355">355</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a133f1be4a780183fd6bd7c008c65482d"></a><!-- doxytag: member="voro::container_periodic_base::check_compartmentalized" ref="a133f1be4a780183fd6bd7c008c65482d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::check_compartmentalized </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Checks that the particles within each block lie within that block's bounds. This is useful for diagnosing problems with periodic image computation. </p>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00548">548</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a9e622a40386d97fcb015ff4ed792ff44"></a><!-- doxytag: member="voro::container_periodic_base::create_all_images" ref="a9e622a40386d97fcb015ff4ed792ff44" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::create_all_images </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This routine creates all periodic images of the particles. It is meant for diagnostic purposes only, since usually periodic images are dynamically created in when they are referenced. </p>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00541">541</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a11b7428673e4791fe651036ecda0cd12"></a><!-- doxytag: member="voro::container_periodic_base::create_periodic_image" ref="a11b7428673e4791fe651036ecda0cd12" args="(int di, int dj, int dk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::create_periodic_image </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>di</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Creates particles within an image block by copying them from the primary domain and shifting them. If the given block is aligned with the primary domain in the z-direction, the routine calls the simpler create_side_image routine where the image block may comprise of particles from up to two primary blocks. Otherwise is calls the more complex create_vertical_image where the image block may comprise of particles from up to four primary blocks. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(di,dj,dk)</td><td>the coordinates of the image block to create. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00196">196</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="aa16ea029bbf80a1fdec3e6bba675e704"></a><!-- doxytag: member="voro::container_periodic_base::create_side_image" ref="aa16ea029bbf80a1fdec3e6bba675e704" args="(int di, int dj, int dk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::create_side_image </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>di</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Creates particles within an image block that is aligned with the primary domain in the z axis. In this case, the image block may be comprised of particles from two primary blocks. The routine considers these two primary blocks, and adds the needed particles to the image. The remaining particles from the primary blocks are also filled into the neighboring images. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(di,dj,dk)</td><td>the index of the block to consider. The z index must satisfy ez&lt;=dk&lt;wz. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00573">573</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a8d3545b219d91aee864b224829b6a644"></a><!-- doxytag: member="voro::container_periodic_base::create_vertical_image" ref="a8d3545b219d91aee864b224829b6a644" args="(int di, int dj, int dk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::create_vertical_image </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>di</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Creates particles within an image block that is not aligned with the primary domain in the z axis. In this case, the image block may be comprised of particles from four primary blocks. The routine considers these four primary blocks, and adds the needed particles to the image. The remaining particles from the primary blocks are also filled into the neighboring images. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(di,dj,dk)</td><td>the index of the block to consider. The z index must satisfy dk&lt;ez or dk&gt;=wz. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00625">625</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a4f637efc5e56874aa9d68f44505e042c"></a><!-- doxytag: member="voro::container_periodic_base::frac_pos" ref="a4f637efc5e56874aa9d68f44505e042c" args="(double x, double y, double z, double ci, double cj, double ck, double &amp;fx, double &amp;fy, double &amp;fz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::frac_pos </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ci</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>fx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>fy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>fz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Returns the position of a particle currently being computed relative to the computational block that it is within. It is used to select the optimal worklist entry to use. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(x,y,z)</td><td>the position of the particle. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(ci,cj,ck)</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(fx,fy,fz)</td><td>the position relative to the block. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00155">155</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a812ed5572fcfece48b73517fcf913ec0"></a><!-- doxytag: member="voro::container_periodic_base::initialize_search" ref="a812ed5572fcfece48b73517fcf913ec0" args="(int ci, int cj, int ck, int ijk, int &amp;i, int &amp;j, int &amp;k, int &amp;disp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::initialize_search </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ci</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>disp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initializes parameters for a find_voronoi_cell call within the <a class="el" href="classvoro_1_1voro__compute.html" title="Template for carrying out Voronoi cell computations.">voro_compute</a> template. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(ci,cj,ck)</td><td>the coordinates of the test block in the container coordinate system. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the index of the test block </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(i,j,k)</td><td>the coordinates of the test block relative to the <a class="el" href="classvoro_1_1voro__compute.html" title="Template for carrying out Voronoi cell computations.">voro_compute</a> coordinate system. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">disp</td><td>a block displacement used internally by the find_voronoi_cell routine (but not needed in this instance.) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00145">145</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ae540389dc8845562c5f8cd45cec71edd"></a><!-- doxytag: member="voro::container_periodic_base::initialize_voronoicell" ref="ae540389dc8845562c5f8cd45cec71edd" args="(v_cell &amp;c, int ijk, int q, int ci, int cj, int ck, int &amp;i, int &amp;j, int &amp;k, double &amp;x, double &amp;y, double &amp;z, int &amp;disp)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class v_cell &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool voro::container_periodic_base::initialize_voronoicell </td>
          <td>(</td>
          <td class="paramtype">v_cell &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>q</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ci</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>j</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>disp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Initializes the Voronoi cell prior to a compute_cell operation for a specific particle being carried out by a <a class="el" href="classvoro_1_1voro__compute.html" title="Template for carrying out Voronoi cell computations.">voro_compute</a> class. The cell is initialized to be the pre-computed unit Voronoi cell based on planes formed by periodic images of the particle. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">c</td><td>a reference to a voronoicell object. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ijk</td><td>the block that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">q</td><td>the index of the particle within its block. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(ci,cj,ck)</td><td>the coordinates of the block in the container coordinate system. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(i,j,k)</td><td>the coordinates of the test block relative to the <a class="el" href="classvoro_1_1voro__compute.html" title="Template for carrying out Voronoi cell computations.">voro_compute</a> coordinate system. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(x,y,z)</td><td>the position of the particle. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">disp</td><td>a block displacement used internally by the compute_cell routine. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False if the plane cuts applied by walls completely removed the cell, true otherwise. </dd></dl>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00127">127</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ac931a6c1cab4b2e910a0d07969b38785"></a><!-- doxytag: member="voro::container_periodic_base::print_all_particles" ref="ac931a6c1cab4b2e910a0d07969b38785" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::print_all_particles </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Prints all particles in the container, including those that have been constructed in image blocks. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00102">102</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a72efe37cb7876149cac5f5ead579b353"></a><!-- doxytag: member="voro::container_periodic_base::put_image" ref="a72efe37cb7876149cac5f5ead579b353" args="(int reg, int fijk, int l, double dx, double dy, double dz)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::put_image </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>reg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>l</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>dz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Copies a particle position from the primary domain into an image block. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">reg</td><td>the block index within the primary domain that the particle is within. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fijk</td><td>the index of the image block. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">l</td><td>the index of the particle entry within the primary block. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(dx,dy,dz)</td><td>the displacement vector to add to the particle. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00756">756</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="afcffffda4a00a48acb4243a74ed59c05"></a><!-- doxytag: member="voro::container_periodic_base::put_locate_block" ref="afcffffda4a00a48acb4243a74ed59c05" args="(int &amp;ijk, double &amp;x, double &amp;y, double &amp;z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::put_locate_block </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Takes a particle position vector and computes the region index into which it should be stored. If the container is periodic, then the routine also maps the particle position to ensure it is in the primary domain. If the container is not periodic, the routine bails out. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">ijk</td><td>the region index. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">(x,y,z)</td><td>the particle position, remapped into the primary domain if necessary. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the particle can be successfully placed into the container, false otherwise. </dd></dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00181">181</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a8d0c8a32a6e31cdd8eecb335f5f68d22"></a><!-- doxytag: member="voro::container_periodic_base::put_locate_block" ref="a8d0c8a32a6e31cdd8eecb335f5f68d22" args="(int &amp;ijk, double &amp;x, double &amp;y, double &amp;z, int &amp;ai, int &amp;aj, int &amp;ak)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::put_locate_block </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ijk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ai</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>aj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ak</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Takes a particle position vector and computes the region index into which it should be stored. If the container is periodic, then the routine also maps the particle position to ensure it is in the primary domain. If the container is not periodic, the routine bails out. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">ijk</td><td>the region index. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">(x,y,z)</td><td>the particle position, remapped into the primary domain if necessary. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(ai,aj,ak)</td><td>the periodic image displacement that the particle is in, with (0,0,0) corresponding to the primary domain. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>True if the particle can be successfully placed into the container, false otherwise. </dd></dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00221">221</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="a8462c3a3079586196e2bd9a764283173"></a><!-- doxytag: member="voro::container_periodic_base::region_count" ref="a8462c3a3079586196e2bd9a764283173" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::region_count </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Outputs the a list of all the container regions along with the number of particles stored within each. </p>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00439">439</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<a class="anchor" id="aa0cd2a5bf51968b7af3334f4bbb8df8e"></a><!-- doxytag: member="voro::container_periodic_base::region_index" ref="aa0cd2a5bf51968b7af3334f4bbb8df8e" args="(int ci, int cj, int ck, int ei, int ej, int ek, double &amp;qx, double &amp;qy, double &amp;qz, int &amp;disp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int voro::container_periodic_base::region_index </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ci</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ei</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ej</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ek</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>qx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>qy</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>qz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>disp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Calculates the index of block in the container structure corresponding to given coordinates. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">(ci,cj,ck)</td><td>the coordinates of the original block in the current computation, relative to the container coordinate system. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">(ei,ej,ek)</td><td>the displacement of the current block from the original block. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">(qx,qy,qz)</td><td>the periodic displacement that must be added to the particles within the computed block. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">disp</td><td>a block displacement used internally by the find_voronoi_cell and compute_cell routines (but not needed in this instance.) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>The block index. </dd></dl>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00174">174</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ac5b0b78cf8fe46f7e3c7124dbf4e0729"></a><!-- doxytag: member="voro::container_periodic_base::remap" ref="ac5b0b78cf8fe46f7e3c7124dbf4e0729" args="(int &amp;ai, int &amp;aj, int &amp;ak, int &amp;ci, int &amp;cj, int &amp;ck, double &amp;x, double &amp;y, double &amp;z, int &amp;ijk)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void voro::container_periodic_base::remap </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ai</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>aj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ak</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ci</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>cj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ck</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>ijk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Takes a position vector and remaps it into the primary domain. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">(ai,aj,ak)</td><td>the periodic image displacement that the vector is in, with (0,0,0) corresponding to the primary domain. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">(ci,cj,ck)</td><td>the index of the block that the position vector is within, once it has been remapped. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">(x,y,z)</td><td>the position vector to consider, which is remapped into the primary domain during the routine. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">ijk</td><td>the block index that the vector is within. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="container__prd_8cc_source.html#l00258">258</a> of file <a class="el" href="container__prd_8cc_source.html">container_prd.cc</a>.</p>

</div>
</div>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a8ae965b9dbb02a92e8dcb0d082d625a2"></a><!-- doxytag: member="voro::container_periodic_base::co" ref="a8ae965b9dbb02a92e8dcb0d082d625a2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int* <a class="el" href="classvoro_1_1container__periodic__base.html#a8ae965b9dbb02a92e8dcb0d082d625a2">voro::container_periodic_base::co</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This array holds the number of particles within each computational box of the container. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00077">77</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a407b759a2c2d6baec5183e18a726a4e6"></a><!-- doxytag: member="voro::container_periodic_base::ey" ref="a407b759a2c2d6baec5183e18a726a4e6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#a407b759a2c2d6baec5183e18a726a4e6">voro::container_periodic_base::ey</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The lower y index (inclusive) of the primary domain within the block structure. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00050">50</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a9920ab99f51190399ceda8fb8689364f"></a><!-- doxytag: member="voro::container_periodic_base::ez" ref="a9920ab99f51190399ceda8fb8689364f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#a9920ab99f51190399ceda8fb8689364f">voro::container_periodic_base::ez</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The lower z index (inclusive) of the primary domain within the block structure. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00053">53</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a5abecf243780e08dd6cce6f5dd270c76"></a><!-- doxytag: member="voro::container_periodic_base::id" ref="a5abecf243780e08dd6cce6f5dd270c76" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int** <a class="el" href="classvoro_1_1container__periodic__base.html#a5abecf243780e08dd6cce6f5dd270c76">voro::container_periodic_base::id</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This array holds the numerical IDs of each particle in each computational box. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00070">70</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a90658551a7621bedfea141f052443fe1"></a><!-- doxytag: member="voro::container_periodic_base::img" ref="a90658551a7621bedfea141f052443fe1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="classvoro_1_1container__periodic__base.html#a90658551a7621bedfea141f052443fe1">voro::container_periodic_base::img</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>An array holding information about periodic image construction at a given location. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00086">86</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="adeaa9eab58ba59f2fa3d7176ce617ff1"></a><!-- doxytag: member="voro::container_periodic_base::init_mem" ref="adeaa9eab58ba59f2fa3d7176ce617ff1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classvoro_1_1container__periodic__base.html#adeaa9eab58ba59f2fa3d7176ce617ff1">voro::container_periodic_base::init_mem</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The initial amount of memory to allocate for particles for each block. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00089">89</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a4ff4effc81e7b8908cda31f0c8c5ad70"></a><!-- doxytag: member="voro::container_periodic_base::mem" ref="a4ff4effc81e7b8908cda31f0c8c5ad70" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int* <a class="el" href="classvoro_1_1container__periodic__base.html#a4ff4effc81e7b8908cda31f0c8c5ad70">voro::container_periodic_base::mem</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This array holds the maximum amount of particle memory for each computational box of the container. If the number of particles in a particular box ever approaches this limit, more is allocated using the <a class="el" href="classvoro_1_1container__periodic__base.html#add72546a646600a12ccda1be8041213a">add_particle_memory()</a> function. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00083">83</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ae1dfc876e56ec254053c7672b4454313"></a><!-- doxytag: member="voro::container_periodic_base::oxyz" ref="ae1dfc876e56ec254053c7672b4454313" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#ae1dfc876e56ec254053c7672b4454313">voro::container_periodic_base::oxyz</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The total number of blocks. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00067">67</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="aa143ce1ecd9093f7c1889a0481b4cbb5"></a><!-- doxytag: member="voro::container_periodic_base::oy" ref="aa143ce1ecd9093f7c1889a0481b4cbb5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#aa143ce1ecd9093f7c1889a0481b4cbb5">voro::container_periodic_base::oy</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The total size of the block structure (including images) in the y direction. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00062">62</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="ab1f18c51495f684dfc4d3372f9b311da"></a><!-- doxytag: member="voro::container_periodic_base::oz" ref="ab1f18c51495f684dfc4d3372f9b311da" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#ab1f18c51495f684dfc4d3372f9b311da">voro::container_periodic_base::oz</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The total size of the block structure (including images) in the z direction. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00065">65</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a301925d00d1d79f3df7b965d02e25608"></a><!-- doxytag: member="voro::container_periodic_base::p" ref="a301925d00d1d79f3df7b965d02e25608" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double** <a class="el" href="classvoro_1_1container__periodic__base.html#a301925d00d1d79f3df7b965d02e25608">voro::container_periodic_base::p</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A two dimensional array holding particle positions. For the derived <a class="el" href="classvoro_1_1container__poly.html" title="Extension of the container_base class for computing radical Voronoi tessellations.">container_poly</a> class, this also holds particle radii. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00074">74</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a5213538964cf869c9751a27bccaf323e"></a><!-- doxytag: member="voro::container_periodic_base::ps" ref="a5213538964cf869c9751a27bccaf323e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classvoro_1_1container__periodic__base.html#a5213538964cf869c9751a27bccaf323e">voro::container_periodic_base::ps</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The amount of memory in the array structure for each particle. This is set to 3 when the basic class is initialized, so that the array holds (x,y,z) positions. If the container class is initialized as part of the derived class <a class="el" href="classvoro_1_1container__poly.html" title="Extension of the container_base class for computing radical Voronoi tessellations.">container_poly</a>, then this is set to 4, to also hold the particle radii. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00096">96</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="a012ffc20dd6379bcbd26ddc0c5cc8591"></a><!-- doxytag: member="voro::container_periodic_base::wy" ref="a012ffc20dd6379bcbd26ddc0c5cc8591" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#a012ffc20dd6379bcbd26ddc0c5cc8591">voro::container_periodic_base::wy</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The upper y index (exclusive) of the primary domain within the block structure. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00056">56</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<a class="anchor" id="afe16d21568925f78421122cdfb7b0cc0"></a><!-- doxytag: member="voro::container_periodic_base::wz" ref="afe16d21568925f78421122cdfb7b0cc0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classvoro_1_1container__periodic__base.html#afe16d21568925f78421122cdfb7b0cc0">voro::container_periodic_base::wz</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>The upper z index (exclusive) of the primary domain within the block structure. </p>

<p>Definition at line <a class="el" href="container__prd_8hh_source.html#l00059">59</a> of file <a class="el" href="container__prd_8hh_source.html">container_prd.hh</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="container__prd_8hh_source.html">container_prd.hh</a></li>
<li><a class="el" href="container__prd_8cc_source.html">container_prd.cc</a></li>
</ul>
</div>


<hr class="footer"/><address class="footer"><small>
Generated on Fri Sep 23 2011 22:49:07 for Voro++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
